home *** CD-ROM | disk | FTP | other *** search
- ; global include file for all .s files to specify model and define macros
- .MODEL USE16 LARGE,C
- %MACS
- .LALL
-
- if @DataSize NE 0
- LARGEDATA EQU 1
- endif
-
- ; Push all general purpose registers. If 386/486, push 32-bit regs
- ; to support C code compiled with the -3 option
- PUSHALL macro
- if @Cpu AND 8 ; PUSHAD available to protect 32-bit regs
- pushad
- elseif @Cpu AND 4 ; PUSHA available
- pusha
- else
- push ax ; save user regs on interrupt stack
- push bx
- push cx
- push dx
- push bp
- push si
- push di
- endif
- endm
-
- ; Pop all general purpose registers
- POPALL macro
- if @Cpu AND 8 ; PUSHAD available to protect 32-bit regs
- popad
- nop ; Avoid bug on some early 386's
- elseif @Cpu AND 4 ; PUSHA available
- popa
- else
- pop di
- pop si
- pop bp
- pop dx
- pop cx
- pop bx
- pop ax
- endif
- endm
-